package com.lancoo.edu.platform.operation.commons.domain.vo.school;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 获得当前学年学期信息【API】实体
 * @author yjk
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@AllArgsConstructor
@NoArgsConstructor
public class Semester implements Serializable {
    /**
     * 教育局id
     */
    @JSONField(name = "SchoolID")
    private String eduId;
    /**
     * 学年学期名称
     */
    @JSONField(name = "Term")
    private String term;
    /**
     * 学期开始日期
     */
    @JSONField(name = "TermStartDate")
    private String termStartDate;
    /**
     * 学期结束日期
     */
    @JSONField(name = "TermEndDate")
    private String termEndDate;
    /**
     * 	学期当前状态:
     * 0:表示学期未开始
     * 1:表示在学期中
     * 2:表示学期结束
     */
    @JSONField(name = "TermStatus")
    private Integer termStatus = 1;
    /**
     * 当前周
     */
    @JSONField(name = "CurrentWeek")
    private Integer currentWeek;
    /**
     * 周总数
     */
    @JSONField(name = "TotalWeeks")
    private Integer totalWeeks = 52;
    /**
     * 周次，即第几周
     */
    @JSONField(name = "WeekNO")
    private Integer weekNo;
    /**
     * 该周的开始日期，格式“2018-11-11”
     */
    @JSONField(name = "StartDate")
    private String startDate;
    /**
     * 	该周的结束日期，格式“2018-11-11”
     */
    @JSONField(name = "EndDate")
    private String endDate;
    /**
     * 该周的开始日期，格式“星期一”
     */
    @JSONField(name = "StartWeekDay")
    private String startWeekDay;
    /**
     * 该周的结束日期，格式“星期日
     */
    @JSONField(name = "EndWeekDay")
    private String endWeekDay;


    public Semester(String startDate, String startWeekDay, String endDate, String endWeekDay) {
        this.startDate = startDate;
        this.endDate = endDate;
        this.startWeekDay = startWeekDay;
        this.endWeekDay = endWeekDay;
    }

    public Semester(String startDate, String startWeekDay, Integer weekNo, String endDate, String endWeekDay) {
        this.startDate = startDate;
        this.weekNo = weekNo;
        this.endDate = endDate;
        this.startWeekDay = startWeekDay;
        this.endWeekDay = endWeekDay;
    }
}
